#ifndef _NE_MIDI_PITCH_H_
#define _NE_MIDI_PITCH_H_

#include <neinit.h>

namespace ne
{
    enum MIDIPitchType
    {
        // C in octave -1
        MIDI_CNEG1 = 0,
        // C# in octave -1
        MIDI_CSHARPNEG1 = 1,
        // D in octave -1
        MIDI_DNEG1 = 2,
        // D# in octave -1
        MIDI_DSHARPNEG1 = 3,
        // E in octave -1
        MIDI_ENEG1 = 4,
        // F in octave -1
        MIDI_FNEG1 = 5,
        // F# in octave -1
        MIDI_FSHARPNEG1 = 6,
        // G in octave -1
        MIDI_GNEG1 = 7,
        // G# in octave -1
        MIDI_GSHARPNEG1 = 8,
        // A in octave -1
        MIDI_ANEG1 = 9,
        // A# in octave -1
        MIDI_ASHARPNEG1 = 10,
        // B in octave -1
        MIDI_BNEG1 = 11,

        // C in octave 0
        MIDI_C0 = 12,
        // C# in octave 0
        MIDI_CSHARP0 = 13,
        // D in octave 0
        MIDI_D0 = 14,
        // D# in octave 0
        MIDI_DSHARP0 = 15,
        // E in octave 0
        MIDI_E0 = 16,
        // F in octave 0
        MIDI_F0 = 17,
        // F# in octave 0
        MIDI_FSHARP0 = 18,
        // G in octave 0
        MIDI_G0 = 19,
        // G# in octave 0
        MIDI_GSHARP0 = 20,
        // A in octave 0, usually the lowest key on an 88-key keyboard
        MIDI_A0 = 21,
        // A# in octave 0
        MIDI_ASHARP0 = 22,
        // B in octave 0
        MIDI_B0 = 23,

        // C in octave 1
        MIDI_C1 = 24,
        // C# in octave 1
        MIDI_CSHARP1 = 25,
        // D in octave 1
        MIDI_D1 = 26,
        // D# in octave 1
        MIDI_DSHARP1 = 27,
        // E in octave 1
        MIDI_E1 = 28,
        // F in octave 1
        MIDI_F1 = 29,
        // F# in octave 1
        MIDI_FSHARP1 = 30,
        // G in octave 1
        MIDI_G1 = 31,
        // G# in octave 1
        MIDI_GSHARP1 = 32,
        // A in octave 1
        MIDI_A1 = 33,
        // A# in octave 1
        MIDI_ASHARP1 = 34,
        // B in octave 1
        MIDI_B1 = 35,

        // C in octave 2
        MIDI_C2 = 36,
        // C# in octave 2
        MIDI_CSHARP2 = 37,
        // D in octave 2
        MIDI_D2 = 38,
        // D# in octave 2
        MIDI_DSHARP2 = 39,
        // E in octave 2
        MIDI_E2 = 40,
        // F in octave 2
        MIDI_F2 = 41,
        // F# in octave 2
        MIDI_FSHARP2 = 42,
        // G in octave 2
        MIDI_G2 = 43,
        // G# in octave 2
        MIDI_GSHARP2 = 44,
        // A in octave 2
        MIDI_A2 = 45,
        // A# in octave 2
        MIDI_ASHARP2 = 46,
        // B in octave 2
        MIDI_B2 = 47,

        // C in octave 3
        MIDI_C3 = 48,
        // C# in octave 3
        MIDI_CSHARP3 = 49,
        // D in octave 3
        MIDI_D3 = 50,
        // D# in octave 3
        MIDI_DSHARP3 = 51,
        // E in octave 3
        MIDI_E3 = 52,
        // F in octave 3
        MIDI_F3 = 53,
        // F# in octave 3
        MIDI_FSHARP3 = 54,
        // G in octave 3
        MIDI_G3 = 55,
        // G# in octave 3
        MIDI_GSHARP3 = 56,
        // A in octave 3
        MIDI_A3 = 57,
        // A# in octave 3
        MIDI_ASHARP3 = 58,
        // B in octave 3
        MIDI_B3 = 59,

        // C in octave 4, also known as Middle C
        MIDI_C4 = 60,
        // C# in octave 4
        MIDI_CSHARP4 = 61,
        // D in octave 4
        MIDI_D4 = 62,
        // D# in octave 4
        MIDI_DSHARP4 = 63,
        // E in octave 4
        MIDI_E4 = 64,
        // F in octave 4
        MIDI_F4 = 65,
        // F# in octave 4
        MIDI_FSHARP4 = 66,
        // G in octave 4
        MIDI_G4 = 67,
        // G# in octave 4
        MIDI_GSHARP4 = 68,
        // A in octave 4
        MIDI_A4 = 69,
        // A# in octave 4
        MIDI_ASHARP4 = 70,
        // B in octave 4
        MIDI_B4 = 71,

        // C in octave 5
        MIDI_C5 = 72,
        // C# in octave 5
        MIDI_CSHARP5 = 73,
        // D in octave 5
        MIDI_D5 = 74,
        // D# in octave 5
        MIDI_DSHARP5 = 75,
        // E in octave 5
        MIDI_E5 = 76,
        // F in octave 5
        MIDI_F5 = 77,
        // F# in octave 5
        MIDI_FSHARP5 = 78,
        // G in octave 5
        MIDI_G5 = 79,
        // G# in octave 5
        MIDI_GSHARP5 = 80,
        // A in octave 5
        MIDI_A5 = 81,
        // A# in octave 5
        MIDI_ASHARP5 = 82,
        // B in octave 5
        MIDI_B5 = 83,

        // C in octave 6
        MIDI_C6 = 84,
        // C# in octave 6
        MIDI_CSHARP6 = 85,
        // D in octave 6
        MIDI_D6 = 86,
        // D# in octave 6
        MIDI_DSHARP6 = 87,
        // E in octave 6
        MIDI_E6 = 88,
        // F in octave 6
        MIDI_F6 = 89,
        // F# in octave 6
        MIDI_FSHARP6 = 90,
        // G in octave 6
        MIDI_G6 = 91,
        // G# in octave 6
        MIDI_GSHARP6 = 92,
        // A in octave 6
        MIDI_A6 = 93,
        // A# in octave 6
        MIDI_ASHARP6 = 94,
        // B in octave 6
        MIDI_B6 = 95,

        // C in octave 7
        MIDI_C7 = 96,
        // C# in octave 7
        MIDI_CSHARP7 = 97,
        // D in octave 7
        MIDI_D7 = 98,
        // D# in octave 7
        MIDI_DSHARP7 = 99,
        // E in octave 7
        MIDI_E7 = 100,
        // F in octave 7
        MIDI_F7 = 101,
        // F# in octave 7
        MIDI_FSHARP7 = 102,
        // G in octave 7
        MIDI_G7 = 103,
        // G# in octave 7
        MIDI_GSHARP7 = 104,
        // A in octave 7
        MIDI_A7 = 105,
        // A# in octave 7
        MIDI_ASHARP7 = 106,
        // B in octave 7
        MIDI_B7 = 107,

        // C in octave 8, usually the highest key on an 88-key keyboard
        MIDI_C8 = 108,
        // C# in octave 8
        MIDI_CSHARP8 = 109,
        // D in octave 8
        MIDI_D8 = 110,
        // D# in octave 8
        MIDI_DSHARP8 = 111,
        // E in octave 8
        MIDI_E8 = 112,
        // F in octave 8
        MIDI_F8 = 113,
        // F# in octave 8
        MIDI_FSHARP8 = 114,
        // G in octave 8
        MIDI_G8 = 115,
        // G# in octave 8
        MIDI_GSHARP8 = 116,
        // A in octave 8
        MIDI_A8 = 117,
        // A# in octave 8
        MIDI_ASHARP8 = 118,
        // B in octave 8
        MIDI_B8 = 119,

        // C in octave 9
        MIDI_C9 = 120,
        // C# in octave 9
        MIDI_CSHARP9 = 121,
        // D in octave 9
        MIDI_D9 = 122,
        // D# in octave 9
        MIDI_DSHARP9 = 123,
        // E in octave 9
        MIDI_E9 = 124,
        // F in octave 9
        MIDI_F9 = 125,
        // F# in octave 9
        MIDI_FSHARP9 = 126,
        // G in octave 9
        MIDI_G9 = 127
    };
}

#endif
